// ==UserScript==
// @name         热搜纯净过滤器
// @namespace    http://tampermonkey.net/
// @version      2.4
// @description  精准隐藏热搜条目（支持多层容器匹配）
// @author       CodeKpy
// @match        *://*.baidu.com/*
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

(function() {
    'use strict';

    // 关键词配置（支持本地存储）
    let hiddenKeywords = GM_getValue('hiddenKeywords', []);

    // 创建隐藏样式
    GM_addStyle(`
        .hidden-by-ent-filter {
            display: none !important;
        }
    `);

    // 主过滤函数（关键升级点）
    function filterEntertainment() {
        // 同时匹配A标签和文本容器
        const items = document.querySelectorAll(`
            .title-content-title,
            .c-single-text-ellipsis,
            .c-font-medium.c-color-t.opr-toplist1-subtitle_1uZgw,
            .hot-title,
            .text-content
        `);

        items.forEach(item => {
            // 智能文本提取
            const textSource = item.tagName === 'A' && item.title
                ? item.title
                : item.textContent;
            const cleanText = String(textSource || '').toLowerCase();

            // 关键词匹配检测
            const shouldHide = hiddenKeywords.some(keyword =>
                cleanText.includes(keyword.toLowerCase())
            );

            if (shouldHide) {
                // 新增多层容器匹配策略
                const containers = [
                    '.toplist1-tr_1MWDu',    // 用户提供的顶层容器
                    '.horizontal_1eKyQ',
                    '.category-wrap_iQLoo',
                    '.card_3gYp9',
                    '.hot-item'
                ];

                // 逐级查找可隐藏的父容器
                let targetElement = item;
                for (const selector of containers) {
                    const parent = targetElement.closest(selector);
                    if (parent) {
                        targetElement = parent;
                        break; // 找到即终止
                    }
                }

                // 添加隐藏类
                targetElement.classList.add('hidden-by-ent-filter');
            }
        });
    }

    /* 以下功能保持不变 */
    // 添加自定义关键词
    function addCustomKeyword() {
        const keyword = prompt('输入要隐藏的新关键词（如：演员、歌手）：');
        if (keyword && !hiddenKeywords.includes(keyword)) {
            hiddenKeywords.push(keyword);
            GM_setValue('hiddenKeywords', hiddenKeywords);
            filterEntertainment();
            alert(`✅ 已添加隐藏词："${keyword}"`);
        }
    }

    // 重置关键词
    function resetKeywords() {
        hiddenKeywords = [];
        GM_setValue('hiddenKeywords', hiddenKeywords);
        filterEntertainment();
        alert('🔄 关键词已重置为默认设置');
    }

    // 显示关键词列表
    function showKeywordsList() {
        if (hiddenKeywords.length === 0) {
            alert('当前没有设置隐藏关键词');
        } else {
            const keywordsStr = hiddenKeywords.join('\n- ');
            alert(`当前隐藏关键词列表：\n- ${keywordsStr}`);
        }
    }

    // 注册菜单命令
    GM_registerMenuCommand('🎭 添加隐藏关键词', addCustomKeyword);
    GM_registerMenuCommand('🗑️ 重置关键词', resetKeywords);
    GM_registerMenuCommand('🔄 重新扫描页面', filterEntertainment);
    GM_registerMenuCommand('📋 显示当前关键词列表', showKeywordsList);

    // 智能初始化
    const initObserver = () => {
        new MutationObserver(filterEntertainment)
            .observe(document.body, { childList: true, subtree: true });
    };

    if (document.readyState === 'complete') {
        filterEntertainment();
        initObserver();
    } else {
        window.addEventListener('load', () => {
            filterEntertainment();
            initObserver();
        });
    }
})();